/**
 * Created with IntelliJ IDEA.
 * Description:
 *      A,B,C三个人是好朋友,每个人手里都有一些糖果,我们不知道他们每个人手上具体有多少个糖果,但是我们知道以下的信息：
 *      A - B, B - C, A + B, B + C. 这四个数值.每个字母代表每个人所拥有的糖果数.
 *      现在需要通过这四个数值计算出每个人手里有多少个糖果,即A,B,C。这里保证最多只有一组整数A,B,C满足所有题设条件。
 *
 * 输入描述：
 *      输入为一行，一共4个整数，分别为A - B，B - C，A + B，B + C，用空格隔开。 范围均在-30到30之间(闭区间)。
 * 输出描述：
 *      输出为一行，如果存在满足的整数A，B，C则按顺序输出A，B，C，用空格隔开，行末无空格。 如果不存在这样的整数A，B，C，则输出No
 *
 * https://www.nowcoder.com/practice/02d8d42b197646a5bbd0a98785bb3a34?tpId=122&tqId=33679&ru=/exam/oj
 */
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main2 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int A = in.nextInt(); // A-B
        int B = in.nextInt(); // B-C
        int C = in.nextInt(); // A+B
        int D = in.nextInt(); // B+c

        // A =((A-B) + (A + B)) / 2
        int a = ((A+C) >> 1);
        int b = ((B+D) >> 1);
        int c = D - ((B+D) >> 1);

        if(a-b==A && b-c==B && a+b==C && b+c==D) {
            System.out.print(a +" ");
            System.out.print(b + " ");
            System.out.println(c);
        } else {
            System.out.print("No");

        }

    }
}
